<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
          Google Web Toolkit
          
            -
            History</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link href="../css/base.css" rel="stylesheet" type="text/css">
<link href="./doc.css" rel="stylesheet" type="text/css">
<link href="../css/print.css" rel="stylesheet" media="print" type="text/css">
</head>
<body>
<div id="gaia">&nbsp;</div>
<div id="header">
<div id="logo">
<a href="http://code.google.com/"><img src="http://code.google.com/images/code_sm.png" alt="Google"></a>
</div>
<div id="title">Google Web Toolkit (Beta)</div>
<div id="breadcrumbs">
<div id="nextprev">
<nobr><a href="com.google.gwt.user.client.Event.html">&laquo; prev</a></nobr><nobr><a href="com.google.gwt.user.client.HTTPRequest.html">next &raquo;</a></nobr>
</div>
<span class="item"><a href="http://code.google.com/">Google Code Home</a></span>
        &gt;
        <span class="item"><a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a></span>
        &gt;
        
        <span class="item"><a xmlns="" href="gwt.html">GWT Class Reference</a></span> &gt;
            <span class="item"><a href="com.google.gwt.user.client.html">com.google.gwt.user.client</a></span> &gt;
            <span class="selected item">History</span>
</div>
</div>
<div id="side">
<div id="menu">
<h4>
<a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a>
</h4>
<ul>
<li>
<a href="http://code.google.com/webtoolkit/download.html">Download GWT</a>
</li>
</ul>
<ul>
<li>
<a href="http://code.google.com/webtoolkit/overview.html">Product Overview</a>
</li>
<li>
<a href="http://code.google.com/webtoolkit/gettingstarted.html">Getting Started Guide</a>
</li>
<li>
<a href="http://code.google.com/webtoolkit/documentation/examples/">Example Projects</a>
</li>
</ul>
<ul>
<li>
<a href="./com.google.gwt.doc.DeveloperGuide.html">Developer Guide</a>
</li>
<li>
<a class="selected" href="./gwt.html">Class Reference</a>
</li>
<li>
<a href="http://code.google.com/webtoolkit/issues/">Issue Tracking</a>
</li>
<li>
<a href="http://groups.google.com/group/Google-Web-Toolkit">Developer Forum</a>
</li>
</ul>
<ul>
<li>
<a href="http://googlewebtoolkit.blogspot.com/">GWT Blog</a>
</li>
<li>
<a href="http://code.google.com/webtoolkit/faq.html">GWT FAQ</a>
</li>
<li>
<a href="http://code.google.com/webtoolkit/makinggwtbetter.html">Making GWT Better</a>
</li>
</ul>
<ul>
<li>
<a href="http://code.google.com/webtoolkit/thirdparty.html">Third Party Tools</a>
</li>
</ul>
</div>
<div id="search">
<form action="http://www.google.com/search" method="get">
<div>
<input name="domains" value="code.google.com" type="hidden"><input name="sitesearch" value="code.google.com" type="hidden">
<div class="header">Search this site:</div>
<div class="input">
<input name="q" size="10">
</div>
<div class="button">
<input value="Search" type="submit">
</div>
</div>
</form>
</div>
</div>
<div xmlns="http://www.w3.org/1999/xhtml" id="body">
<h1>Class History</h1>
<div class="classSig">public 
            class 
            History<br>extends
                <a xmlns="" href="java.lang.Object.html">Object</a>
</div>This class allows you to interact with the browser's history stack. Each
 "item" on the stack is represented by a single string, referred to as a
 "token". You can create new history items (which have a token associated with
 them when they are created), and you can programmatically force the current
 history to move back or forward.
 
 <p>
 In order to receive notification of user-directed changes to the current
 history item, implement the
 <a href="com.google.gwt.user.client.HistoryListener.html">HistoryListener</a> interface and attach it
 via <a href="com.google.gwt.user.client.History.html#addHistoryListener(com.google.gwt.user.client.HistoryListener)">addHistoryListener</a>.
 </p>
<p>
<h3>Example</h3>
<pre class="code">public class HistoryExample implements EntryPoint, HistoryListener {

  private Label lbl = new Label();

  public void onModuleLoad() {
    // Create three hyperlinks that change the application's history.
    Hyperlink link0 = new Hyperlink("link to foo", "foo");
    Hyperlink link1 = new Hyperlink("link to bar", "bar");
    Hyperlink link2 = new Hyperlink("link to baz", "baz");

    // If the application starts with no history token, start it off in the
    // 'baz' state.
    String initToken = History.getToken();
    if (initToken.length() == 0)
      initToken = "baz";

    // onHistoryChanged() is not called when the application first runs. Call
    // it now in order to reflect the initial state.
    onHistoryChanged(initToken);

    // Add widgets to the root panel.
    VerticalPanel panel = new VerticalPanel();
    panel.add(lbl);
    panel.add(link0);
    panel.add(link1);
    panel.add(link2);
    RootPanel.get().add(panel);

    // Add history listener
    History.addHistoryListener(this);
  }

  public void onHistoryChanged(String historyToken) {
    // This method is called whenever the application's history changes. Set
    // the label to reflect the current history token.
    lbl.setText("The current history token is: " + historyToken);
  }
}
</pre>
</p>
<h2 class="api">Methods</h2>
<table cellpadding="1" cellspacing="1" class="members">
<tr>
<td><a href="com.google.gwt.user.client.History.html#addHistoryListener(com.google.gwt.user.client.HistoryListener)">addHistoryListener(HistoryListener)</a></td><td>Adds a listener to be informed of changes to the browser's history stack. </td>
</tr>
<tr>
<td><a href="com.google.gwt.user.client.History.html#back()">back()</a></td><td>Programmatic equivalent to the user pressing the browser's 'back' button. </td>
</tr>
<tr>
<td><a href="com.google.gwt.user.client.History.html#forward()">forward()</a></td><td>Programmatic equivalent to the user pressing the browser's 'forward'
 button. </td>
</tr>
<tr>
<td><a href="com.google.gwt.user.client.History.html#getToken()">getToken()</a></td><td>Gets the current history token. </td>
</tr>
<tr>
<td><a href="com.google.gwt.user.client.History.html#newItem(java.lang.String)">newItem(String)</a></td><td>Adds a new browser history entry. </td>
</tr>
<tr>
<td><a href="com.google.gwt.user.client.History.html#onHistoryChanged(java.lang.String)">onHistoryChanged(String)</a></td><td></td>
</tr>
<tr>
<td><a href="com.google.gwt.user.client.History.html#removeHistoryListener(com.google.gwt.user.client.HistoryListener)">removeHistoryListener(HistoryListener)</a></td><td>Removes a history listener. </td>
</tr>
</table>
<h2 class="api">Method Detail</h2>
<a name="addHistoryListener(com.google.gwt.user.client.HistoryListener)"></a>
<h3 class="api">addHistoryListener</h3>
<div class="memberSig">public static void<b> addHistoryListener</b>(<nobr><a href="com.google.gwt.user.client.HistoryListener.html">HistoryListener</a> listener</nobr>)</div>Adds a listener to be informed of changes to the browser's history stack.<h4 class="api">Parameters</h4>
<dl class="memberDetail">
<dt>listener</dt>
<dd>the listener to be added</dd>
</dl>
<hr>
<a name="back()"></a>
<h3 class="api">back</h3>
<div class="memberSig">public static void<b> back</b>()</div>Programmatic equivalent to the user pressing the browser's 'back' button.<hr>
<a name="forward()"></a>
<h3 class="api">forward</h3>
<div class="memberSig">public static void<b> forward</b>()</div>Programmatic equivalent to the user pressing the browser's 'forward'
 button.<hr>
<a name="getToken()"></a>
<h3 class="api">getToken</h3>
<div class="memberSig">public static <a href="java.lang.String.html">String</a><b> getToken</b>()</div>Gets the current history token. The listener will not receive an
 onHistoryChanged() event for the initial token; requiring that an
 application request the token explicitly on startup gives it an opportunity
 to run different initialization code in the presence or absence of an
 initial token.<h4 class="api">Return Value</h4>the initial token, or the empty string if none is present.<hr>
<a name="newItem(java.lang.String)"></a>
<h3 class="api">newItem</h3>
<div class="memberSig">public static void<b> newItem</b>(<nobr><a href="java.lang.String.html">String</a> historyToken</nobr>)</div>Adds a new browser history entry. In hosted mode, the 'back' and 'forward'
 actions are accessible via the standard Alt-Left and Alt-Right keystrokes.
 Calling this method will cause <a href="com.google.gwt.user.client.History.html#onHistoryChanged(java.lang.String)">onHistoryChanged</a> to be called as
 well.<h4 class="api">Parameters</h4>
<dl class="memberDetail">
<dt>historyToken</dt>
<dd>the token to associate with the new history item</dd>
</dl>
<hr>
<a name="onHistoryChanged(java.lang.String)"></a>
<h3 class="api">onHistoryChanged</h3>
<div class="memberSig">public static void<b> onHistoryChanged</b>(<nobr><a href="java.lang.String.html">String</a> historyToken</nobr>)</div>
<h4 class="api">Parameters</h4>
<dl class="memberDetail">
<dt>historyToken</dt>
<dd>
<!--[Missing documentation]-->
</dd>
</dl>
<hr>
<a name="removeHistoryListener(com.google.gwt.user.client.HistoryListener)"></a>
<h3 class="api">removeHistoryListener</h3>
<div class="memberSig">public static void<b> removeHistoryListener</b>(<nobr><a href="com.google.gwt.user.client.HistoryListener.html">HistoryListener</a> listener</nobr>)</div>Removes a history listener.<h4 class="api">Parameters</h4>
<dl class="memberDetail">
<dt>listener</dt>
<dd>the listener to be removed</dd>
</dl>
</div>
<div id="footer" xmlns="http://www.w3.org/1999/xhtml">
          &copy;2007 Google
          <span class="noprint">
            -
            <a href="http://www.google.com/">Google Home</a>
            -
            <a href="http://www.google.com/jobs/">We're Hiring</a>
            -
            <a href="http://www.google.com/privacy.html">Privacy Policy</a>
            -
            <a href="http://www.google.com/terms_of_service.html">Terms of Service</a>
            -
            <a href="mailto:code@google.com">Contact Us</a></span>
<div id="license" style="text-align: center; margin: 1em 0em 1em 0em">
            Except as otherwise
            <a href="http://code.google.com/policies.html#restrictions">noted</a>, the content of this  page is licensed under the  <a rel="license" href="http://creativecommons.org/licenses/by/2.5/">Creative Commons Attribution 2.5 License</a>.
              <!--
            <rdf:RDF xmlns="http://web.resource.org/cc/">
<Work rdf:about="">
<license rdf:resource="http://creativecommons.org/licenses/by/2.5/"></license>
</Work>
<License rdf:about="http://creativecommons.org/licenses/by/2.5/">
<permits rdf:resource="http://web.resource.org/cc/Reproduction"></permits>
<permits rdf:resource="http://web.resource.org/cc/Distribution"></permits>
<requires rdf:resource="http://web.resource.org/cc/Notice"></requires>
<requires rdf:resource="http://web.resource.org/cc/Attribution"></requires>
<permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"></permits>
</License>
</rdf:RDF>
              -->
            </div>
</div>
<script src="https://ssl.google-analytics.com/urchin.js" type="text/javascript" xmlns="http://www.w3.org/1999/xhtml"></script><script type="text/javascript">
          _uacct="UA-18071-1"; _uanchor=1; urchinTracker();
        </script>
</body>
</html>
